package com.jy.oms.framework.asyn.task.executor;


import com.jy.oms.framework.asyn.task.model.TaskGroup;
import com.jy.oms.framework.asyn.task.model.TaskResultDto;
import com.jy.oms.framework.asyn.task.model.TaskWrapper;

import java.util.List;

/**
 * 任务执行器
 *
 * @author liuquan
 */
public interface ITaskExecutor {

    /**
     * 初始化
     */
    void init(TaskGroup taskGroup);

    /**
     * 判断任务执行器能否运行
     */
    boolean isAbleExecute(TaskGroup taskGroup);

    /**
     * 执行组任务
     */
    void executeTask(TaskGroup taskGroup, List<TaskWrapper> taskList);

    /**
     * 执行单个任务
     */
    TaskResultDto executeTask(TaskWrapper taskWrapper);

}
